Technical Field
The present invention relates to web page navigation control and more particularly to a system and method for automatically providing navigation through pages based on a position and/or content of data known or entered into a web form or page.
Description of the Related Art
Complexities result from a lack of integrated document packaging for current document formats which represent composite forms in collaborative business processes. Underlying document formats that flow through business processes typically are existing formats such as PDF, DOC, HTML, or various proprietary XML formats. Proprietary, or vendor-centric, formats are not suitable representations for complex composite forms due to the closed nature of their formats. Complex forms require new or extended representations for issues such as data sharing across document fragments, transfer of control among fragments, electronic signatures that span document fragments, and style sheets for coherent presentation and interaction.
When large form applications are based on an XML file format, they are somewhat open and interoperable. Use of a custom XML vocabulary, when implemented in plug-in or other runtimes separate from web browsers, often limits access to the full power of well-known web resources that customers expect to be able to use, such as CSS™ and JavaScript™.
Web formats today, such as HTML, do not support packaging of composite resources directly—the page is the unit of content storage. Hyperlinks permit navigation among related resources but do not define collections of related content. Formats that collect related artifacts including HTML pages, images, and metadata into internally coherent entities are intended for archiving websites for historical or offline purposes, not as runtime platforms.
Most solutions to the packaging of composite web applications therefore are specific to the middleware platform on which the web application is deployed. Web application archive format (WAR) files are used by JEE web application servers to package and deploy the set of artifacts needed by a given web application including HTML pages or the Java Server Pages that create them, Java beans for storing and validating data during user interaction, and static resources such as images.
JEE web applications commonly include flow-based controllers such as Struts to control the internal behavior of the various artifacts included in the WAR file and to invoke back-end services as required. Generally, web archive (WAR) files define a packaging mechanism for composite web applications, but they do so in a platform-specific (JEE) way. Such archives are not transportable to other runtimes including non-JEE application servers or client-based runtimes.
Going beyond packaging formats, web archive files are deployment not runtime artifacts and hence do not define a network access protocol, or URL pattern, for accessing their contents. Web archives similarly provide no support for aggregating multiple content sources when several end-users are involved in a document-centric business process.
The emerging W3C format for widgets makes similar use of zip-based archives for packaging but, as in the JEE WAR example above, lacks requirements or support for an interactive protocol or instance-specific data storage. URI standards being defined for widgets are intended to resolve references internal to the widget from one resource to another. Prior work on composite document packaging focuses on adapting document content for rendering to multiple devices.
In traditional workflow, the token of control is the central focus and content (whether in documents or otherwise) flows through the process from one artifact to another as a result of the execution of a control path defined by the workflow. Documents and document behavior become secondary to control flow.
High level declarative languages for control are required just as they are for data and presentation. Many of today's complex forms processing systems require authors to “escape out” of their document-centric languages when describing behavior, even to manage document presentation and validation in single workflow steps with individual users. Document-centric formats that do not extend to behavioral control increase complexity due to the need to map repeatedly between declarative and procedural programming models.
Declarative languages for document behavior may nonetheless be expressed in multiple conceptual models, including flow-based languages with adaptations for human interaction, state-based languages, and time-based languages. These declarative languages share the advantage of being independent of the specific runtime middleware platform being used to support the composite web application.
Without a simple means to represent large or complex forms as composite documents, monolithic documents result in performance and scalability limitations, particularly on a logical client. Large documents are slow to transmit, parse, and display and consume large amounts of storage. When large forms applications are represented with a single XML document, the result is excessive, and sustained demand on memory resources is needed to provide a performant user experience. This is demanding on a rich client program, but it is even more demanding when the logical client includes a server program to present the parts of the document to an end-user through a web browser. The server side of the solution has the same performance challenges as a rich client for one user, but also does not scale up beyond a few dozen concurrent users per CPU.
The processing associated with a complex document may take place at multiple locations in a distributed system. End-users may interact with rich or thin clients. Web services may augment document content from the server. Intermediaries may transform document content in the network. The decision as to where to perform each document operation should be decoupled from how the document is represented to allow for “late binding” or alternative choices in how document processing is deployed onto a particular infrastructure. Lightweight means to provide language extensions to current browsers have been developed based on the use of JavaScript™ as an XML tag library implementation language rather than as the direct authoring language for web pages.